﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;

using Tipler.DataSetler;
using Tipler.Siniflar;
using Tipler.Enumlar;
using Classes;
using IKYSWeb.Siniflar;
using Microsoft.ApplicationServer.Caching;
using System.Configuration;
using System.Data;
using IsKurallari.Tanimlama;
using IsKurallari.Yetki;
using IsKurallari.Sozlesme;

/// <summary>
/// Cache işlemi için gerekli fonksiyonları içerir
/// </summary>
[Serializable]
public class CachePage
{
	public CachePage()
	{
	}

	#region IlKatsayi

	public static void IlKatsayiDoldur()
	{
		TanimlamaIsKurali oTanimlama = new TanimlamaIsKurali();
		FonksiyonSonuc<IlKatsayiDataSet> sonuc = oTanimlama.IlKatsayiGetir();
		if (sonuc.HataVarMi)
			throw new Exception("IlKatsayi tablosu cache atılırken hata oluştu.");

		HttpRuntime.Cache.Insert("IlKatsayi", sonuc.Sonuc, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
	}
	public static IlKatsayiDataSet IlKatsayiGetir()
	{
		if (HttpRuntime.Cache["IlKatsayi"] == null)
			IlKatsayiDoldur();

		IlKatsayiDataSet ds = (IlKatsayiDataSet)HttpRuntime.Cache["IlKatsayi"];
		return ds;
	}
	public static IlKatsayiDataSet.IlKatsayiRow IlKatsayiRowGetir(int IlKaysayiID)
	{
		return IlKatsayiGetir().IlKatsayi.FindByIlKaysayiID(IlKaysayiID);
	}

	#endregion

	#region Duyuru

	public static void AktifDuyuruDoldur()
	{
		TanimlamaIsKurali oTanimlama = new TanimlamaIsKurali();
		FonksiyonSonuc<DuyuruDataSet> sonuc = oTanimlama.AktifDuyuruGetir();
		if (sonuc.HataVarMi)
			throw new Exception("Duyuru tablosu cache atılırken hata oluştu.");

		HttpRuntime.Cache.Insert("AktifDuyuru", sonuc.Sonuc, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
	}
	public static DuyuruDataSet AktifDuyuruGetir()
	{
		if (HttpRuntime.Cache["AktifDuyuru"] == null)
			AktifDuyuruDoldur();

		DuyuruDataSet ds = (DuyuruDataSet)HttpRuntime.Cache["AktifDuyuru"];
		return ds;
	}
	public static DuyuruDataSet.DuyuruRow AktifDuyuruRowGetir(int ID)
	{
		return AktifDuyuruGetir().Duyuru.FindByID(ID);
	}

	#endregion

	#region Grup

	public static void GrupDoldur()
	{
		YetkiIsKurali oTanimlama = new YetkiIsKurali();
		FonksiyonSonuc<GrupDataSet> sonuc = oTanimlama.GrupGetir();
		if (sonuc.HataVarMi)
			throw new Exception("Grup tablosu cache atılırken hata oluştu.");

		HttpRuntime.Cache.Insert("Grup", sonuc.Sonuc, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
	}
	public static GrupDataSet GrupGetir()
	{
		if (HttpRuntime.Cache["Grup"] == null)
			GrupDoldur();

		GrupDataSet ds = (GrupDataSet)HttpRuntime.Cache["Grup"];
		return ds;
	}
	public static GrupDataSet.GrupRow GrupRowGetir(int GrupID)
	{
		return GrupGetir().Grup.FindByGrupID(GrupID);
	}

	#endregion

	#region Kullanici

	public static void KullaniciDoldur()
	{
		YetkiIsKurali oTanimlama = new YetkiIsKurali();
		FonksiyonSonuc<KullaniciDataSet> sonuc = oTanimlama.KullaniciGetir(-1, "", -1, -1);
		if (sonuc.HataVarMi)
			throw new Exception("Kullanici tablosu cache atılırken hata oluştu.");

		HttpRuntime.Cache.Insert("Kullanici", sonuc.Sonuc, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
	}

	public static KullaniciDataSet KullaniciGetir()
	{
		if (HttpRuntime.Cache["Kullanici"] == null)
			KullaniciDoldur();

		KullaniciDataSet ds = (KullaniciDataSet)HttpRuntime.Cache["Kullanici"];
		return ds;
	}
	public static KullaniciDataSet.KullaniciRow KullaniciRowGetir(int KullaniciID)
	{
		return KullaniciGetir().Kullanici.FindByKullaniciID(KullaniciID);
	}

	#endregion

	#region Ilce

	public static void IlceDoldur()
	{
		TanimlamaIsKurali oTanimlama = new TanimlamaIsKurali();
		FonksiyonSonuc<IlcePrmDataSet> sonuc = oTanimlama.IlcePrmGetir();
		if (sonuc.HataVarMi)
			throw new Exception("IlcePrm tablosu cache atılırken hata oluştu.");

		HttpRuntime.Cache.Insert("IlcePrm", sonuc.Sonuc, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
	}
	public static IlcePrmDataSet IlceGetir()
	{
		if (HttpRuntime.Cache["IlcePrm"] == null)
			IlceDoldur();

		IlcePrmDataSet ds = (IlcePrmDataSet)HttpRuntime.Cache["IlcePrm"];
		return ds;
	}
	public static IlcePrmDataSet.IlcePrmRow IlceRowGetir(Int16 IlceID)
	{
		return IlceGetir().IlcePrm.FindByIlceID(IlceID);
	}

	#endregion

	#region Il

	public static void IlDoldur()
	{
		TanimlamaIsKurali oTanimlama = new TanimlamaIsKurali();
		FonksiyonSonuc<IlPrmDataSet> sonuc = oTanimlama.IlPrmGetir();
		if (sonuc.HataVarMi)
			throw new Exception("IlPrm tablosu cache atılırken hata oluştu.");

		HttpRuntime.Cache.Insert("IlPrm", sonuc.Sonuc, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
	}
	public static IlPrmDataSet IlGetir()
	{
		if (HttpRuntime.Cache["IlPrm"] == null)
			IlDoldur();

		IlPrmDataSet ds = (IlPrmDataSet)HttpRuntime.Cache["IlPrm"];
		return ds;
	}
	public static IlPrmDataSet.IlPrmRow IlRowGetir(byte IlID)
	{
		return IlGetir().IlPrm.FindByIlID(IlID);
	}

	#endregion

    #region HizmetUcret

    public static void HizmetUcretDoldur()
    {
        SozlesmeIsKurali oTanimlama = new SozlesmeIsKurali();
        FonksiyonSonuc<HizmetUcretPrmDataSet> sonuc = oTanimlama.HizmetUcretGetir();
        if (sonuc.HataVarMi)
            throw new Exception("HizmetUcret tablosu cache atılırken hata oluştu.");

        HttpRuntime.Cache.Insert("HizmetUcret", sonuc.Sonuc, null, DateTime.Now.AddHours(1), TimeSpan.Zero, System.Web.Caching.CacheItemPriority.Normal, null);
    }
    public static HizmetUcretPrmDataSet HizmetUcretGetir()
    {
        if (HttpRuntime.Cache["HizmetUcret"] == null)
            HizmetUcretDoldur();

        HizmetUcretPrmDataSet ds = (HizmetUcretPrmDataSet)HttpRuntime.Cache["HizmetUcret"];
        return ds;
    }
    public static HizmetUcretPrmDataSet.HizmetUcretPrmRow HizmetUcretRowGetir(int HizmetUcretID)
    {
        return HizmetUcretGetir().HizmetUcretPrm.FindByHizmetUcretID(HizmetUcretID);
    }

    #endregion
}
